package com.lingchou.cloud.process.client.enums;

import org.flowable.bpmn.model.*;

/**
 * 网关工厂枚举
 * @author lc
 */
public enum GatewayFactoryEnum {
    /**
     * 排他网关
     */
    EXCLUSIVEGATEWAY{
        @Override
        public Gateway getGateWay() {
            return new ExclusiveGateway();
        }
    },
    /**
     * 并行网关
     */
    PARALLELGATEWAY {
        @Override
        public Gateway getGateWay() {
            return new ParallelGateway();
        }
    },
    /**
     * 包容性网关
     */
    INCLUSIVEGATEWAY {
        @Override
        public Gateway getGateWay() {
            return new InclusiveGateway();
        }
    },
    /**
     * 事件网关
     */
    EVENTGATEWAY{
        @Override
        public Gateway getGateWay() {
            return new ExclusiveGateway();
        }
    },
    /**
     * 复杂网关
     */
    COMPLEXGATEWAY{
        @Override
        public Gateway getGateWay() {
            return new ComplexGateway();
        }
    };

    public abstract Gateway getGateWay();
}
